package com.example.emos.wx.common.util;

import org.apache.http.HttpStatus;

import java.util.HashMap;
import java.util.Map;

public class R extends HashMap<String, Object> {
    //构造器，this is 默认绑定的数据
    public R(){
        //code：状态码
        put("code", HttpStatus.SC_OK);//httpstatus的类库里面封装的状态码
        put("msg","success");
        //msg：业务消息
    }
//连续调用的put方法，链式调用形式
    public R put(String key,Object value){
        super.put(key,value);//绑定数据？
        return this;
    }
    /*静态工厂方法
    请求成功，调用ok 失败用error 重载 不同参数
     */
    public static R ok(){
        return new R();//默认200，success
    }
    public static R ok(String msg){
        R r=new R();
        r.put("msg",msg);//msg覆盖掉success
        return r;
    }
    public static R ok(Map<String,Object> map){
        R r=new R();
        r.putAll(map);
        return r;
    }
    public static R error(int code,String msg){
        R r=new R();
        r.put("code",code);//封装异常状态码和业务消息
        r.put("msg",msg);
        return r;
    }
    public static R error(String msg){
        return error(HttpStatus.SC_INTERNAL_SERVER_ERROR,msg);
        //这一串is500
    }
    public static R error(){
        return error(HttpStatus.SC_INTERNAL_SERVER_ERROR,"未知异常，请联系管理员！");
    }


}
